/*
 * @Author: LBH 1336709799@qq.com
 * @Date: 2024-10-29 15:03:17
 * @LastEditors: LBH 1336709799@qq.com
 * @LastEditTime: 2024-10-29 15:43:38
 * @FilePath: \enjoy_plus_three\lib\utils\token.dart
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import 'package:shared_preferences/shared_preferences.dart';

class TokenManager{
  // 私有属性_token 和 _key
  String? _token;
  final _key = 'enjoy-plus-key';

  // 私有实例对象
  static TokenManager? _instance;
  // 自定义构造函数,返回一个TokenManager类的实例对象
  TokenManager._internal();

  // 默认构造函数 - 可以省略不写
  // 执行时机:外部创建实例 - 自动执行
  factory TokenManager(){
    _instance ??= TokenManager._internal();
    return _instance!;
  }

  Future init() async{
    // 获取数据仓库实例
    final SharedPreferences prefs =  await SharedPreferences.getInstance();
    // 读取token并赋值
    _token = prefs.getString(_key);
  }

  // 存储token
  Future setToken(String token) async{
    _token = token;
    // 获取数据仓库的实例
    final SharedPreferences prefs = await SharedPreferences.getInstance();
    prefs.setString(_key, token);
  }

  // 同步获取token
  String? getToken(){
    return _token;
  }

  // 删除token
  Future removeToken() async{
    _token = null;
    // 获取数据仓库的实例
    final SharedPreferences prefs = await SharedPreferences.getInstance();
     prefs.remove(_key);
  }
}